One type of industrial robot that has a robot arm with links driven by servomotors to change the position and orientation of an end effector mounted to the distal end of the arm on this type of robot, thereby carrying out required work, one known method has been to determine target rotary positions of the servomotors for individual axes in dependence on a target moving position of the end effector, and detect actual rotary positions of these servomotors with position detectors mounted to the servomotors. As a result the servomotors are controlled in a feedback manner so that the actual rotary positions of the servomotors coincide with their target rotary positions. Further, in order to improve positioning repeatability in a robot of this kind, various improvements have been made in resolution of the position detector and in performance of a servo mechanism.
However, even if the aforementioned measures are taken, it is often difficult to carry out positioning with a required accuracy when a robot is operated in accordance with a program prepared by offline programming, or prepared on the basis of teaching results for another robot of the same type.
The above difficulty occurs for the reason that, typical offline programming is performed by using the target moving position of the end effector. This position is represented by a program coordinate system whose coordinate origin coincides with a designed pivotal center position of the robot arm, and by using, e.g., designed link lengths defined as arm link lengths, in determining the target rotary positions of the motors for the individual axes in dependence on the target moving position of the end effector. Since an actual pivotal center position of the arm deviates from the designed pivotal center position due to fabrication and assemblage errors of the robot concerned, the program coordinate system for offline programming does not coincide, in a strict sense, with a robot coordinate system set for the robot body concerned. Further, the actual lengths of the respective links are different from the designed link lengths set and stored for the offline programming. Thus, the robot itself is the cause of inherent positioning errors. Thus, according to the program prepared offline, it is difficult to attain a required positioning accuracy even if the above-mentioned measures such as the provision of the position detector of high-resolution type are taken.
Similarly, in a robot operation performed in accordance with a program prepared for another robot of the same kind, the positioning accuracy is also degraded for the aforementioned reason, i.e., the presence of variations of the link lengths, the pivotal center position of the arm, etc. which are found even among robots of the same kind.
It is further considered that the above drawback is attributable to so-called mastering (calibration) which is performed to determine the target rotary positions corresponding to the target moving position, i.e., to match the program coordinate system to the robot coordinate system. A general mastering operation involves detecting the rotary angles of the motors for the individual axes, with the end effector positioned at a reference point which is known in the robot coordinate system, and storing these detected rotary angles as the motor rotary angles for positioning the end effector at that point in the program coordinate system which corresponds to the reference point. Then, during a robot operation, the target rotary positions of the motors for the individual axes, determined by a coordinate conversion process based on the target moving position of the end effector given in the program, are calculated by the use of the aforesaid motor rotary angles. However, according to the above mastering operation, it is difficult to eliminate calculation errors of the target motor rotary positions for the individual axes, attributable to the deviation of the pivotal center position of the arm and to the deviations in the link sizes. This makes it difficult to eliminate degraded positioning accuracy.
Moreover, in a robot provided with a visual sensor, it is known to teach a particular position of the robot to the visual sensor for calibration, so as to match a camera coordinate system for the visual sensor to a robot coordinate system, thereby improving the positioning accuracy. Even in this case, however, the positioning accuracy is degraded due to the presence of the inherent errors in the respective robot.